Guía de seguimiento dinámico de Solaris

Asignación de cadenas

A diferencia de la asignación de las variables char *, las cadenas se copian por valor, no por referencia. La asignación de cadenas se realiza utilizando el operador = y copia los bytes reales de la cadena desde el operando de origen hasta el byte nulo, incluido, a la variable del lado izquierdo, que debe ser del tipo string. Puede crear una nueva variable de tipo string asignándole una expresión de tipo string. Por ejemplo, la instrucción D:

s = "hello";

crearía una variable nueva s del tipo string y copiaría los 6 bytes de la cadena "hello" en ella (5 caracteres imprimibles más el byte nulo). La asignación de cadena es parecida a la función de biblioteca de strcpy(3C), excepto que si la cadena de origen supera el límite de almacenamiento de la cadena de destino, la cadena resultante se trunca automáticamente en este límite.

También puede asignar a una variable de cadena una expresión de tipo compatible con cadenas. En este caso, el compilador de D envía automáticamente la expresión de origen al tipo string y realiza una asignación de cadena. El compilador de D permite que una expresión de tipo char * o de tipo char[n] (es decir, una matriz escalar de char de cualquier tamaño), se envíe a un tipo string.