+ (Plus Sign) is ASCII code point 43 (0x2B), Unicode U+002B, and a printable punctuation character. It denotes addition or indicates a positive value — the mathematical shorthand for combining two quantities into their sum. In nearly every programming language, + performs arithmetic addition, but many languages also conscript it for string concatenation: "hello" + " world" in JavaScript, Python, and Java glues two strings together. This overloading is where trouble brews. JavaScript's type coercion means "5" + 3 yields "53" (string concatenation) while "5" - 3 yields 2 (numeric subtraction), a left-right asymmetry that has launched a thousand confused Stack Overflow questions. In regular expressions, + means "one or more of the preceding element," distinguishing it from * which allows zero matches. URLs reserve + as an alias for space in query strings (a relic of HTML form encoding), so a literal plus sign must be encoded as %2B — search for "C++" without encoding and the server receives "C " with two trailing spaces, which is why language-specific search results sometimes go mysteriously wrong. The symbol entered mathematical notation in the late fifteenth century, likely as a merchant's abbreviation for the Latin "et," eventually stylized into a simple cross. UTF-8 encodes it as a single byte 0x2B. Unicode classifies it as Sm (Symbol, Math) with the name PLUS SIGN. The lookalike heavy plus ➕ (U+2795) is an emoji variant that renders with color on most platforms and will not behave as an operator in any parser.
int a = 40, b = 3;int sum = a + b; // ASCII '+' often appears in expressionsbool explicitPos = (+sum) > 0; // unary + keeps numeric type
In query strings (application/x-www-form-urlencoded), + represents a space. In URL paths, + is a literal plus sign. This inconsistency causes bugs: if you want a literal + in a query, you must encode it as %2B. This is why 'C++' in a Google search becomes 'C%2B%2B.'
In JavaScript, Python, and Java, + joins strings: 'hello' + ' world'. The controversy is that JavaScript silently converts numbers to strings: 1 + '2' = '12'. In Python, this throws a TypeError instead, catching bugs at runtime. Modern code prefers template literals or f-strings.
It matches 'one or more' of the preceding element. a+ matches 'a', 'aa', 'aaa' but not an empty string (unlike a* which matches zero or more). It's shorthand for {1,} and is one of the most frequently used regex quantifiers.
Both increment i by 1, but i++ (post-increment) returns the old value before incrementing, while ++i (pre-increment) increments first and returns the new value. In modern optimizers, there's no performance difference for primitives, but the distinction matters in expressions like array[i++].