4-数组、指针与字符串1.3-this指针】的更多相关文章

1.以字符串形式出现的,编译器都会为该字符串自动添加一个\0作为结尾 如在代码中写"abc",编译器帮你存储的是"abc\0". 2.数组的类型是由该数组所存放的东西的类型以及数组本身的大小决定的,如char s1[3]和char s2[4],s1的类型就是char[3],s2的类型就是char[4] 字符串常量的类型可以理解为相应字符常量数组的类型,如"abc"的类型可以看成是const char[4] 3.字符数组和指针的区别 (1)把&qu…
数组名同时也是该数组首元素的地址,而指针提供了一种用来使用地址的符号方法,因此指针能够很有效地处理数组. 将一个整数加给指针,这个整数会和指针所指类型的字节数相乘,然后所得的结果会加到初始地址上 date + == &date[]; // 相同的地址 *(date + ) == date[]; // 相同的值 在函数原型或函数定义头的场合中(并且也只有在这两种场合中),可以用int ar[]代替int* ar,处理数组的函数实际上是使用指针做为参数的 int sum(int* ar, int n…
在做面试100题中第21题时,发现char *astr="abcdefghijk\0";和char astr[]={"abcdefghijk"};有点区别,以前一直以为是一样的,但是在该程序中采用字符串指针运行一直出错.后来在网上查查,果然发现大大的不同. 展示如何出错 分析:当你需要修改字符串时,采用指针指向该字符串编译通过但是运行出错,而采用字符串数组时不会出现这样的问题.我们知道计算机有堆栈空间供编程人员使用,第一行,astr为栈上分配的一个指针,而右边在堆上…
1.当一个char型指针指向一个字符串字面量(也就是常量字符串)时,该指针必须由const修饰,否则,系统会给出deprecated(不赞成)的警告.原因是:字符串字面量不可改变,当它被一个非const修饰的指针指向时,存在被指针改变的风险. 2.char型指针指向一个字符数组时,没有const限制,因为字符数组可以被改变.但是,如果我们不需要指针来改变字符数组时,我们最好加上const修饰,来限制指针的行为,减少出错的概率. 3.例子: #include <cstdio> int main(…
#include<stdio.h> #include<string.h> int main() { ] = "abcd"; //常指针a指向字符串常量"abcd"的首地址,a不能被改变(不可作为左值被重新赋值) char *f = "abcd"; //f指向"abcd",上面a和这个f除了a是常指针之外没有区别,f可以作为左值 ] = "safajshjf"; //常指针b指向&qu…
关于数组,指针,字符串转换的例子 var   aa:   array [0..5] of Char;   bb:Pointer;   cc:string;   dd:PChar; procedure TForm1.Button1Click(Sender: TObject);begindd:='abcdef'; //以下是pchar内容转数组FillChar(aa,length(dd),#0);Move(dd^,aa,SizeOf(aa)); //以下是数组传递到指针bb:=GetMemory(S…
字符串指针和字符串数组使用区别 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 5 int main(void) 6 { 7 char str1[]="this is str1!"; 8 puts(str1); 9 10 strcpy(str1,"new str1"); 11 puts(str1); 12 13 char *subStr=str1…
#include <stdio.h> void  copyString (char  *to, char  *from) {      while ( *from ) // from指针遇到空指针的时候结束循环(字符串的最后一个字符为\0,也就是空指针,空指针和0等价)           *to++ = *from++; // 将from指针指向的值赋值给to指针指向的值,然后两个指针分别递增1      *to = '\0'; // 给to指针指向的字符串的最后一位赋值为\0结束符 } i…
指向字符串的指针 C语言访问字符串很多方法:1.用字符数组存放一个字符串 char string[] = "Linux C"; printf("%s\n".string); string是这个字符数组的数组名,也是该字符数组的首地址.2.用字符串指针来指向字符串 char *p = "Linux C"; printf("%s\n",p); C语言处理字符串常量,在内存中开辟一个字符串数组存字符串常量,并把字符数组首地址赋给p常…
这点是与C语言不一样的地方,以前我一直都没有明白这一点,所以总是不明白:函数地址再取地址算怎么回事? ---------------------------------------------------------------------------------------------------------------- 在学习Delphi的时候,一个很好的建议是和C/C++去类比着学习,从指针,到内存管理,到数组,到面向对象……各个方面,都是有很多可以相似和或者也有不同的方,类比着学习,一…