指针可以加上或减去一个整数。指针的这种运算的意义和通常的数值的加减运算的意义是不一样的。指针加1的结果等于原来的地址值加上指向的对象占用的总字节数。指针的相减将得到一个整数,仅当两个指针指向同一个数组时这种运算才有意义,这将得到两个元素的间隔。
例1:
char a[20];
int *ptr=(int *)a; //强制类型转换并不会改变 a 的类型
ptr++;
在上例中...
分类:
其他好文 时间:
2015-04-27 10:00:32
阅读次数:
92
昨天调试程序(见下面代码)遇到下面一个问题:
#include
int main()
{
int i = 1;
while(i)
{
char str[100];
printf("please input a str:\n");
gets(str);
puts(str);
printf("continue:1,break:0\n");
scanf("%...
分类:
编程语言 时间:
2015-04-27 09:59:03
阅读次数:
263
1、
一般而言,数组名代表了数组本身,但如果把数组名看做指针的话,它指向数组的第一个元素的地址。
例1:
int array[10]={0,1,2,3,4,5,6,7,8,9};
int value;
value=array[0]; //也可写成:value=*array;
value=array[1]; //也可写成:value=*(array+1);
value=array[2]...
分类:
编程语言 时间:
2015-04-27 09:56:39
阅读次数:
92
我们之前介绍了指针和数组的关系。这一节介绍指针和结构类型的关系。我们可以声明一个指向结构类型对象的指针。
例1:
struct MyStruct
{
int a;
int b;
int c;
};
struct MyStruct ss={20,30,40}; //创建结构对象 ss, 并把 ss 的成员初始化为 20, 30 和 40。
st...
分类:
其他好文 时间:
2015-04-27 09:54:45
阅读次数:
113
Java是一种强类型编程语言,因而在声明变量的时候必须声明数据类型,java语言有基本数据类型和引用数据类型这两大数据类型,基本数据类型有8种分别是4种整型、2种浮点类型、1种用于Unicode表示字符单元的字符类型和1种表示真值的布尔类型;引用数据类型有接口(interface)、数组(arr.....
分类:
编程语言 时间:
2015-04-27 01:56:43
阅读次数:
173
数组是内存空间的一片连续的区域,用于存贮一组相同数据类型元素的集合。 指针变量中存放的是变量的地址,通过指针取得地址,再通过地址提取数据。 在大多是C语言书中,都有这样的说法,“数组和指针是相同的”。其实,数组与指针,只能在特定的情况下才是相同的,在大多书情况下,他们并不相同。 C语言中每...
分类:
编程语言 时间:
2015-04-27 00:08:39
阅读次数:
231
动态内存分配 传统数组的缺点(静态内存分配): 1.数组长度必须事先指定,且只能是常整数,不能是变量 例子: int a[5]; //OK int len = 5; int a[len]; //error 2.传统形...
分类:
其他好文 时间:
2015-04-27 00:07:50
阅读次数:
110
就像数组名是指向数组的第一个元素的常指针一样,函数名也是指向函数的常指针。可以声明一个指向函数的指针变量,并且用这个指针调用其他函数(只要这个函数和你的函数指针在签名、返回、参数值方面一致即可)。
例1:
long (* fun) (int)
上面就是一个函数指针,该指针返回值类型是long,所带的参数类型是int。
例2:
int fun(char *,int);...
分类:
其他好文 时间:
2015-04-26 22:49:34
阅读次数:
140
strlen() --> 返回字符串的长度 以ox00结束sizeof() --> 返回分配的内存大小char str[10]="123"; //字符串占四个字节int a=strlen(str); //a=3; 不包括结束符int b=sizeof(str); //b=10; 表示数组大小
分类:
其他好文 时间:
2015-04-26 22:44:54
阅读次数:
127