Los signos de puntuación utilizados en un programa de idioma de usuario son:
| [ ] | Corchetes |
| ( ) | Paréntesis |
| { } | Llaves |
| , | Coma |
| ; | Punto y coma |
| : | Dos puntos |
| = | Signo igual |
Otros caracteres especiales se utilizan como operadores en un ULP.
Los corchetes se utilizan en las definiciones de matriz
int ai[];
en subíndices de matriz
n = ai[2];
y en subíndices de cadena para acceder a los caracteres individuales de una cadena
string s = "Hello world";
char c = s[2];Entre paréntesis, se incluyen expresiones de grupo (posiblemente modificando la prioridad normal del operador), se aíslan expresiones condicionales e indican llamadas a funciones y parámetros de función:
d = c * (a + b);
if (d == z) ++x;
func();
void func2(int n) { ... }Las llaves indican el inicio y el final de una sentencia compuesta:
if (d == z) {
++x;
func();
}y también se utilizan para agrupar los valores de un iniciador de matriz:
int ai[] = { 1, 2, 3 };
La coma separa los elementos de una lista de argumentos de función o los parámetros de una llamada de función:
int func(int n, real r, string s) { ... }
int i = func(1, 3.14, "abc");También delimita los valores de un iniciador de matriz:
int ai[] = { 1, 2, 3 };
y separa los elementos de una definición de variable:
int i, j, k;
El punto y coma termina una sentencia, como en
i = a + b;
y también delimita las expresiones init, test e increment de una sentencia for:
for (int n = 0; n < 3; ++n) {
func(n);
}Los dos puntos indican el final de una etiqueta en una sentencia switch:
switch (c) {
case 'a': printf("It was an 'a'\n"); break;
case 'b': printf("It was a 'b'\n"); break;
default: printf("none of them\n");
}El signo igual separa las definiciones de variables de las listas de inicio:
int i = 10;
char c[] = { 'a', 'b', 'c' };También se utiliza como operador de asignación.