c语言基本结构| 耗时:0.226秒|64929条结果

C语言(数据结构) - 双向链表的基本操作

/*dlist.c*/ #include"dlist.h" #include<malloc.h> #include<stdlib.h> /*分配值为i的节点,并返回节点地址*/ Position MakeNode(Item i) //创建节点,并设置数据i
http://www.itnose.net/detail/6629932.html 2016-08-22 17:15   [C语言]

数据结构C语言>基本链表>

数据结构C语言>基本链表>使用malloc()函数分配一块浮点数内存 使用malloc()函数分配一块浮点数内存 #include  < stdio.h > #include  < stdlib.h > int  main
http://www.itnose.net/detail/501419.html 2014-01-25 14:24   [C语言]

c语言基本函数

一.内存操作函数: (1) 头文件:#include <string.h>memset() 函数用来将指定内存的前n个字节设置为特定的值,其原型为:    void * memset( void * ptr, int value, size_t num );参数说明: ptr 为要操作的内存的指针。 value 为要设置的值。你既可以向 value 传递 int 类型的值,也可以传递 char 类型的值,int 和 char 可以根据 ASCII 码相互转换。 num 为 ptr 的前 num 个字节,size_t 就是unsigned int。 【函数说明】memset() 会将 ptr 所指的内存区域的前 num 个字节的值都设置为 value,然后返回指向 ptr 的指针。 【返回值】返回指向 ptr 的指针。 (2) 头文件:#include <string.h>memcpy() 用来复制内存,其原型为:    void * memcpy ( void * dest, const void * src, size_t num );memcpy() 会复制 src 所指的内存内容的前 num 个字节到 dest 所指的内存地址上。memcpy() 并不关心被复制的数据类型,只是逐字节地进行复制,这给函数的使用带来了很大的灵活性,可以面向任何数据类型进行复制。需要注意的是: dest 指针要分配足够的空间,也即大于等于 num 字节的空间。如果没有分配空间,会出现断错误。 dest 和 src 所指的内存空间不能重叠(如果发生了重叠,使用 memmove() 会更加安全)。 与 strcpy() 不同的是,memcpy() 会完整的复制 num 个字节,不会因为遇到“\0”而结束。【返回值】返回指向 dest 的指针。注意返回的指针类型是 void,使用时一般要进行强制类型转换。 (3) 头文件:#include <string.h>定义函数:int memcmp (const void *s1, const void *s2, size_t n);函数说明:memcmp()用来比较s1 和s2 所指的内存区间前n 个字符。字符串大小的比较是以ASCII 码表上的顺序来决定,次顺序亦为字符的值。memcmp()首先将s1 第一个字符值减去s2 第一个字符的值,若差为0 则再继续比较下个字符,若差值不为0 则将差值返回。例如,字符串"Ac"和"ba"比较则会返回字符'A'(65)和'b'(98)的差值(-33)。返回值:若参数s1 和s2 所指的内存内容都完全相同则返回0 值。s1 若大于s2 则返回大于0 的值。s1 若小于s2 则返回小于0 的值。 (4) 头文件:#include <string.h>定义函数:void * memccpy(void *dest, const void * src, int c, size_t n);函数说明:memccpy()用来拷贝src 所指的内存内容前n 个字节到dest 所指的地址上。与memcpy()不同的是,memccpy()会在复制时检查参数c 是否出现,若是则返回dest 中值为c 的下一个字节地址。返回值:返回指向dest 中值为c 的下一个字节指针。返回值为0 表示在src 所指内存前n 个字节中没有值为c的字节。 (5) 头文件:#include <stdlib.h>malloc() 函数用来动态地分配内存空间(如果你不了解动态内存分配,请查看:C语言动态内存分配及变量存储类别),其原型为:void* malloc (size_t size);【参数说明】size 为需要分配的内存空间的大小,以字节(Byte)计。【函数说明】malloc() 在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。如果希望在分配内存的同时进行初始化,请使用 calloc() 函数。【返回值】分配成功返回指向该内存的地址,失败则返回 NULL。由于申请内存空间时可能有也可能没有,所以需要自行判断是否申请成功,再进行后续操作。 (6) 头文件:#include <stdlib.h>calloc() 函数用来动态地分配内存空间并初始化为 0,其原型为:    void* calloc (size_t num, size_t size);calloc() 在内存中动态地分配 num 个长度为 size 的连续空间,并将每一个字节都初始化为 0。所以它的结果是分配了 num*size 个字节长度的内存空间,并且每个字节的值都是0。【返回值】分配成功返回指向该内存的地址,失败则返回 NULL。 (7) 头文件:#include <stdlib.h>calloc() 函数是给一个已经分配了地址的指针重新分配空间,参数ptr为原有的空间地址,newsize是重新申请的地址长度。其原型为:    void*  realloc(void * ptr, unsigned newsize) realloc函数将ptr的内存大小增加到newsize。 返回值:分配成功返回指向该内存的地址,失败则返回 NULL。 (8) 头文件:#include <stdlib.h>free() 函数用来释放动态分配的内存空间,其原型为:    void free (void* ptr);free() 可以释放由 malloc()、calloc()、realloc() 分配的内存空间,以便其他程序再次使用。【参数说明】ptr 为将要释放的内存空间的地址。free() 只能释放动态分配的内存空间,并不能释放任意的内存。下面的写法是错误的: int a[10];// ...free(a); 如果 ptr 所指向的内存空间不是由上面的三个函数所分配的,或者已被释放,那么调用 free() 会有无法预知的情况发生。如果 ptr 为 NULL,那么 free() 不会有任何作用。注意:free() 不会改变 ptr 变量本身的值,调用 free() 后它仍然会指向相同的内存空间,但是此时该内存已无效,不能被使用。所以建议将 ptr 的值设置为 NULL,例如: free(ptr);ptr = NULL; (9) 头文件:#include <string.h>定义函数:void * memchr(const void *s, char c, size_t n);函数说明:memchr()从头开始搜寻s 所指的内存内容前n 个字节,直到发现第一个值为c 的字节,则返回指向该字节的指针。返回值:如果找到指定的字节则返回该字节的指针,否则返回0。 (10) 头文件:#include <string.h>memmove() 用来复制内存内容,其原型为:    void * memmove(void *dest, const void *src, size_t num);memmove() 与 memcpy() 类似都是用来复制 src 所指的内存内容前 num 个字节到 dest 所指的地址上。不同的是,memmove() 更为灵活,当src 和 dest 所指的内存区域重叠时,memmove() 仍然可以正确的处理,不过执行效率上会比使用 memcpy() 略慢些。src和dst所指内存区域如果重叠,复制后src的内容会被更改。 memmove代码实现: void * my_memmove(void * dst,const void * src,int count) {    void * ret = dst;    if (dst <= src || (char *)dst >= ((char *)src + count))    {       while (count--)       {         *(char *)dst = *(char *)src;             dst = (char *)dst + 1;             src = (char *)src + 1;         }    }    else    {       dst = (char *)dst + count - 1;       src = (char *)src + count - 1;       while (count--)       {         *(char *)dst = *(char *)src;         dst = (char *)dst - 1;         src = (char *)src - 1;       }    }    return(ret); } int main() {    char a[12];    puts((char *)my_memmove(a,"ammana_babi",16));    system("pause");    return 0; } (11) 头文件:#include <unistd.h>    #include <sys/mman.h>定义函数:void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offsize);函数说明:mmap()用来将某个文件内容映射到内存中,对该内存区域的存取即是直接对该文件内容的读写。 返回值:若映射成功则返回映射区的内存起始地址,否则返回MAP_FAILED(-1),错误原因存于errno 中。错误代码: EBADF  参数fd 不是有效的文件描述词。 EACCES  存取权限有误。如果是MAP_PRIVATE 情况下文件必须可读,使用MAP_SHARED 则要有PROT_WRITE 以及该文件要能写入。 EINVAL  参数start、length 或offset 有一个不合法。 EAGAIN  文件被锁住,或是有太多内存被锁住。 ENOMEM  内存不足。 (12) 头文件:#include <unistd.h>       #include <sys/mman.h>定义函数:int munmap(void *start, size_t length);函数说明:munmap()用来取消参数start 所指的映射内存起始地址,参数length 则是欲取消的内存大小。当进程结束或利用exec 相关函数来执行其他程序时,映射内存会自动解除,但关闭对应的文件描述词时不会解除映射。返回值:如果解除映射成功则返回0,否则返回-1。错误原因存于errno 中错误代码EINVAL参数 start 或length 不合法。 (13) 头文件:#include <unistd.h>定义函数:size_t getpagesize(void);函数说明:返回一分页的大小,单位为字节(byte)。此为系统的分页大小,不一定会和硬件分页大小相同。返回值:内存分页大小。附加说明:在 Intel x86 上其返回值应为4096bytes。 二.字符串操作函数: (1) 头文件:#include <string.h>strlen()函数用来计算字符串的长度,其原型为:    unsigned int strlen (char *s);【参数说明】s为指定的字符串。strlen()用来计算指定的字符串s 的长度,不包括结束字符"\0"。【返回值】返回字符串s 的字符数。注意一下字符数组,例如    char str[100] = "http://see.xidian.edu.cn/cpp/u/biaozhunku/";定义了一个大小为100的字符数组,但是仅有开始的11个字符被初始化了,剩下的都是0,所以 sizeof(str) 等于100,strlen(str) 等于11。如果字符的个数等于字符数组的大小,那么strlen()的返回值就无法确定了,例如    char str[6] = "abcxyz";strlen(str)的返回值将是不确定的。因为str的结尾不是0,strlen()会继续向后检索,直到遇到'\0',而这些区域的内容是不确定的。注意:strlen() 函数计算的是字符串的实际长度,遇到第一个'\0'结束。如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到'\0'停止。而sizeof返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen()是函数。 (2) 头文件:#include <string.h>定义函数:char *strcpy(char *dest, const char *src);函数说明:strcpy()会将参数src 字符串拷贝至参数dest 所指的地址。返回值:返回参数dest 的字符串起始地址。附加说明:如果参数 dest 所指的内存空间不够大,可能会造成缓冲溢出(buffer Overflow)的错误情况,在编写程序时请特别留意,或者用strncpy()来取代。 (3) 头文件:#include <string.h>strcmp() 用来比较字符串(区分大小写),其原型为:    int strcmp(const char *s1, const char *s2);【参数】s1, s2 为需要比较的两个字符串。字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。【返回值】若参数s1 和s2 字符串相同则返回0。s1 若大于s2 则返回大于0 的值。s1 若小于s2 则返回小于0 的值。注意:strcmp() 以二进制的方式进行比较,不会考虑多字节或宽字节字符;如果考虑到本地化的需求,请使用 strcoll() 函数。 (4) 头文件:#include <string.h>strcoll() 函数根据环境变量LC_COLLATE来比较字符串,其原型为:    int strcoll( const char * str1, const char * str2 );【参数说明】str1、str2 是要进行比较的两个字符串。函数说明:strcoll() 会依环境变量 LC_COLLATE 所指定的文字排列次序来比较 s1 和 s2 字符串。默认情况下,LC_COLLATE 为"POSIX"或"C",strcoll() 和 strcmp() 一样根据ASCII比较字符串大小。对于设置了 LC_COLLATE 语言环境的情况下,则根据 LC_COLLATE 设置的语言排序方式进行比较。例如,汉字会根据拼音进行比较。【返回值】若字符串 str1 和 str2 相同则返回0。若 str1 大于 str2 则返回大于 0 的值,否则返回小于 0 的值。 (5) 头文件:#include <string.h>strcat() 函数用来连接字符串,其原型为:    char *strcat(char *dest, const char *src);【参数】dest 为目的字符串指针,src 为源字符串指针。strcat() 会将参数 src 字符串复制到参数 dest 所指的字符串尾部;dest 最后的结束字符 NULL 会被覆盖掉,并在连接后的字符串的尾部再增加一个 NULL。注意:dest 与 src 所指的内存空间不能重叠,且 dest 要有足够的空间来容纳要复制的字符串。【返回值】返回dest 字符串起始地址。 (6) 头文件:#include <string.h>strncpy()用来复制字符串的前n个字符,其原型为:    char * strncpy(char *dest, const char *src, size_t n);【参数说明】dest 为目标字符串指针,src 为源字符串指针。strncpy()会将字符串src前n个字符拷贝到字符串dest。不像strcpy(),strncpy()不会向dest追加结束标记'\0',这就引发了很多不合常理的问题,将在下面的示例中说明。注意:src 和 dest 所指的内存区域不能重叠,且 dest 必须有足够的空间放置n个字符。【返回值】返回字符串dest。 (7) 头文件:#inclue <string.h>strncat()用于将n个字符追加到字符串的结尾,其原型为:    char * strncat(char *dest, const char *src, size_t n);【参数说明】dest为目标字符串,src为源字符串,n为要追加的字符的数目。strncat()将会从字符串src的开头拷贝n 个字符到dest字符串尾部,dest要有足够的空间来容纳要拷贝的字符串。如果n大于字符串src的长度,那么仅将src全部追加到dest的尾部。strncat()会将dest字符串最后的'\0'覆盖掉,字符追加完成后,再追加'\0'。【返回值】返回字符串dest。 (8) 头文件:#include <string.h>strstr()函数用来检索子串在字符串中首次出现的位置,其原型为:    char *strstr( char *str, char * substr );【参数说明】str为要检索的字符串,substr为要检索的子串。【返回值】返回字符串str中第一次出现子串substr的地址;如果没有检索到子串,则返回NULL。 (9) 头文件:#include <string.h>strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:    char * strchr (const char *str, int c);【参数】str 为要查找的字符串,c 为要查找的字符。strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回。注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个字符也可以被定位。【返回值】如果找到指定的字符则返回该字符所在地址,否则返回 NULL。返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置。设字符在字符串中首次出现的位置为 i,那么返回的地址可以理解为 str + i。提示:如果希望查找某字符在字符串中最后一次出现的位置,可以使用 strrchr() 函数。 (10) 头文件:#include <string.h>strrchr() 函数用于查找某字符在字符串中最后一次出现的位置,其原型为:    char * strrchr(const char *str, int c);【参数】str 为要查找的字符串,c 为要查找的字符。strrchr() 将会找出 str 字符串中最后一次出现的字符 c 的地址,然后将该地址返回。注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个字符也可以被定位。【返回值】如果找到就返回该字符最后一次出现的位置,否则返回 NULL。返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置。设字符在字符串中首次出现的位置为 i,那么返回的地址可以理解为 str + i。 (11) 头文件:#include <string.h>定义函数:char * strtok(char *s, const char *delim);函数说明:strtok()用来将字符串分割成一个个片段。参数s 指向欲分割的字符串,参数delim 则为分割字符串,当strtok()在参数s 的字符串中发现到参数delim 的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s 字符串,往后的调用则将参数s 设置成NULL。每次调用成功则返回下一个分割后的字符串指针。返回值:返回下一个分割后的字符串指针,如果已无从分割则返回NULL。 (12) 头文件:#include <string.h>定义函数:char * strdup(const char *s);函数说明:strdup()会先用maolloc()配置与参数s 字符串相同的空间大小,然后将参数s 字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以利用free()来释放。返回值:返回一字符串指针,该指针指向复制后的新字符串地址。若返回NULL 表示内存不足。 (13) 头文件:#include <ctype.h>定义函数:int toupper(int c);函数说明:若参数 c 为小写字母则将该对应的大写字母返回。返回值:返回转换后的大写字母,若不须转换则将参数c 值返回。 (14) 头文件:#include <stdlib.h>定义函数:int tolower(int c);函数说明:若参数 c 为大写字母则将该对应的小写字母返回。返回值:返回转换后的小写字母,若不须转换则将参数c 值返回。 (15) 头文件:#include <ctype.h>定义函数:int toascii(int c);函数说明:toascii()会将参数c 转换成7 位的unsigned char 值,第八位则会被清除,此字符即会被转成ASCII码字符。返回值:将转换成功的ASCII 码字符值返回。 (16) atol() 函数的名字源于“ascii to long”,用来将字符串转换成长整型数(long),其原型为:    long atol(const char * str);【函数说明】atol() 会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。【返回值】返回转换后的长整型数(long);如果 str 不能转换成 long 或者 str 为空字符串,那么将返回 0。温馨提示:ANSI C 规范定义了 stof()、atoi()、atol()、strtod()、strtol()、strtoul() 共6个可以将字符串转换为数字的函数,大家可以对比学习;使用 atol() 与使用strtol(nptr, NULL, 10) 结果相同。另外在 C99 / C++11 规范中又新增了5个函数,分别是 atoll()、strtof()、strtold()、strtoll()、strtoull()。在此不做介绍,请大家自行学习。 (17) 头文件:#include <stdlib.h>atoi() 函数用来将字符串转换成整数(int),其原型为:int atoi (const char * str);【函数说明】atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace()函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。【返回值】返回转换后的整型数;如果 str 不能转换成 int 或者 str 为空字符串,那么将返回 0。 (18) 头文件:#include <stdlib.h>函数 atof() 用于将字符串转换为双精度浮点数(double),其原型为:double atof (const char* str);atof() 的名字来源于 ascii to floating point numbers 的缩写,它会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数str 字符串可包含正负号、小数点或E(e)来表示指数部分,如123. 456 或123e-2。【返回值】返回转换后的浮点数;如果字符串 str 不能被转换为 double,那么返回 0.0   。 三.文件操作函数: 详情可以参考我的另一篇博客:http://10704527.blog.51cto.com/10694527/1763701 四.数学函数: (1) 头文件:#include <math.h>sqrt() 用来求给定值的平方根,其原型为:    double sqrt(double x);【参数】x 为要计算平方根的值。如果 x < 0,将会导致 domain error 错误,并把全局变量 errno 的值为设置为 EDOM。【返回值】返回 x 平方根。注意,使用 GCC 编译时请加入-lm。 (2) 头文件:#include <math.h>pow() 函数用来求 x 的 y 次幂(次方),其原型为:    double pow(double x, double y);pow()用来计算以x 为底的 y 次方值,然后将结果返回。设返回值为 ret,则 ret = xy。可能导致错误的情况: 如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error 错误。 如果底数 x 和指数 y 都是 0,可能会导致 domain error 错误,也可能没有;这跟库的实现有关。 如果底数 x 是 0,指数 y 是负数,可能会导致 domain error 或 pole error 错误,也可能没有;这跟库的实现有关。 如果返回值 ret 太大或者太小,将会导致 range error 错误。 错误代码: 如果发生 domain error 错误,那么全局变量 errno 将被设置为  EDOM; 如果发生 pole error 或 range error 错误,那么全局变量 errno 将被设置为 ERANGE。 注意,使用 GCC 编译时请加入-lm。 (3) 头文件:#include <stdlib.h>定义函数:int abs (int j);函数说明:abs()用来计算参数j 的绝对值,然后将结果返回。返回值:返回参数j 的绝对值结果。 (4) 头文件:#include <math.h>log() 函数返回以 e 为底的对数值,其原型为:    double log (double x);log()用来计算以e为底的 x 的对数值,然后将结果返回。设返回值为 ret,则x = eret如果 x 为负数或 0,则会发生错误并设置 errno 值。错误代码: EDOM:参数x 为负数; ERANGE:参数x 为零值,零的对数值无定义。 注意:使用 GCC 编译时请加入-lm。 (5) 头文件:#include <math.h>log10() 返回以10为底的对数值,其原型为:    double log10(double x);log10()用来计算以10为底的 x 的对数值,然后将结果返回。设返回值为 ret,则x = 10ret返回值:返回参数x 以10 为底的对数值。如果 x 为负数或 0,则会发生错误并设置 errno 值。错误代码: EDOM:参数x 为负数; ERANGE:参数x 为零值,零的对数值无定义。 注意:使用 GCC 编译时请加入-lm。
http://www.itnose.net/detail/6493094.html 2016-04-25 01:05   [C语言]

C语言-02基本运算

http://www.itnose.net/detail/6414260.html 2015-12-06 08:55   [C语言]

mysql C语言基本操作

mysql C语言编程基本思路   详细操作见 mysql 5.1 参考手册   一般性原则: 与MySQL交互时,应用程序应使用该一般性原则: 1.    通过调用mysql_library_init(),初始化MySQL库。库可以
http://www.itnose.net/detail/494015.html 2014-01-24 15:49   [C语言]

C语言结构

就行 在 C 语言里,全局变量只能用常量初始化。 在 C 语言里,全局变量只能用常量初始化。 初始化了的结构体不算常量吗 在 C 语言里,全局变量只能用常量初始化。 初始化了的结构体不算常量吗 不算
http://www.itnose.net/detail/6665112.html 2016-11-14 20:32   [C语言]

C语言结构

原因么?谢谢! 可以解释一下我的错误原因么?谢谢! 原因就是不能这样赋值! name如果是string类型的话就可以,char类型的数组不能这样赋值 C语言  Char * 字符串  不能用 等于号赋值
http://www.itnose.net/detail/6433723.html 2016-01-08 14:53   [C语言]

C语言基本输入输出函数

简单的任务。 4.1 putchar putchar 函数是字符输出函数, 其功能是在显示器上打印单个字符。putchar函数是一个标准的C语言库函数,它的函数原型在头文件“stdio.h”中。 1 putchar函数的一般格式: putchar(字符数据); 其中的putchar是函数
http://www.itnose.net/detail/6661067.html 2016-11-03 15:32   [C语言]

C语言基本图形函数

C语言基本图形函数     基本图形函数包括画点,线以及其它一些基本图形的函数。本节对这些函数作一全面的介绍。   一、画点   1. 画点函数         void far putpixel(int x, int y, int color);         该函数表示有指定的象元画一个按color 所确定颜色的点。对于颜色color的值可从表3中获得而对x, y是指图形象元的坐标。     在图形模式下,是按象元来定义坐标的。对VGA适配器, 它的最高分辨率为640x480,其中640为整个屏幕从左到右所有象元的个数,480 为整个屏幕从上到下所有象元的个数。屏幕的左上角坐标为(0,0),右下角坐标为(639, 479),水平方向从左到右为x 轴正向,垂直 方向从上到下为y轴正向。TURBO C的图形函数都是相对于图形屏幕坐标,即
http://www.itnose.net/detail/508125.html 2014-01-26 14:57   [C语言]

01-C语言基本知识

目录: 一、C语言基本知识 二、C语言概述 回到顶部 一、C语言基本知识 1 语言背景 1946年,美国冯·诺依曼第一台计算机。    四大部分:中央处理器(控制器,运算器),存储器,输入设备,输出设备。 注意:摄像头属于输入设备。 计算机语言的分类
http://www.itnose.net/detail/471335.html 2014-01-21 18:32   [C语言]

C语言遍历结构

假设结构体为: typedef struct { unsigned char ucType;                char cProgramID[32];                 char cRegionGroupID[32];             unsigned char ucPlayStatus;          unsigned char ucMonitorStatus;      }InsertProgramQueryCondition; 求一段用循环遍历该结构体的c代码。 回复讨论(解决方案) 没人吗????求大神解答一下啊 请把题目说清楚,光给个struct怎么遍历 请把题目说清楚,光给个struct怎么遍历 就是要遍历结构体啊,没其他的要求 你是要遍历结构体还是要遍历放了很多结构体变量的一个容器? 我猜,楼主是要这样遍历结构体内的每个字节吧 InsertProgramQueryCondition ST char *p = (char*)(&St); for (int i =0; i < sizeof(InsertProgramQueryCondition); i++) { //这里 *p 就是要的内容 p++; } 应该说对于结构体内部进行循环遍历不易做到,使用一些变通的方法或许能够做到,但最主要的是这样做毫无意义。 C,C++ 没有直接的方法 按照 成员变量的类型,通过循环访问他。 你不是要做调试程序吧 那是对每个类型的类型信息,做了记录和封装 所以,才能一一看到。 我猜,楼主是要这样遍历结构体内的每个字节吧 InsertProgramQueryCondition ST char *p = (char*)(&St); for (int i =0; i < sizeof(InsertProgramQueryCondition); i++) { //这里 *p 就是要的内容 p++; } 其实这个结构体里面还有其他类型的变量,如果还有int型变量,能遍历吗? 应该说对于结构体内部进行循环遍历不易做到,使用一些变通的方法或许能够做到,但最主要的是这样做毫无意义。 因为结构体很多,而且每个结构体里面的数据也比较多,我列举的只是一个小的例子,所以想通过遍历来取结构体中的值,不知道你有没有什么好的方法能实现一个通用的方法。 你是要遍历结构体还是要遍历放了很多结构体变量的一个容器? 我就是想给结构体中的每一个变量赋值,但是想用循环来遍历结构体,不然依次赋值感觉代码很冗余 你是要遍历结构体还是要遍历放了很多结构体变量的一个容器? 我就是想给结构体中的每一个变量赋值,但是想用循环来遍历结构体,不然依次赋值感觉代码很冗余 你有不止一种类型的变量,如何用循环赋值呢? 再说了,即使可以做到,一个结构体又能有多少变量。何必把简单的问题复杂化。。。 你是要遍历结构体还是要遍历放了很多结构体变量的一个容器? 我就是想给结构体中的每一个变量赋值,但是想用循环来遍历结构体,不然依次赋值感觉代码很冗余 你有不止一种类型的变量,如何用循环赋值呢? 再说了,即使可以做到,一个结构体又能有多少变量。何必把简单的问题复杂化。。。 分给错了,抱歉
http://www.itnose.net/detail/6530944.html 2016-07-12 20:38   [C语言]

R语言基本数据结构

1 C2R1  1  3R2  2  4 3、数组 关于数组这个东西,基本上的语言里都有这个东西,不多解释了 用法:newarray<-array(vector,dimensions,dimnames) vector:向量,也是数组中的数据
http://www.itnose.net/detail/6476981.html 2016-03-27 23:38   [R语言]

只对C/C++语言及数据结构基本算法掌握较好,对网络、数据库等了解都不

如题, 只对C/C++语言及数据结构基本算法掌握较好,对网络、数据库等了解都不深,可以往哪个方向发展? 请教对软件行业有宏观认知的高手 回复讨论(解决方案) 咋跟我一样,同求! 咋跟我一样,同求! 应届毕业生一般都这样吧,同求,呵呵~ 同样同样  关注 先考虑下自己对哪个方向感兴趣 有时候感觉自己没有对哪个方向特别得感兴趣,而且有哪些方向也不是特别了解,您能讲讲有哪些方向可以选择的吗?请赐教了 先考虑下自己对哪个方向感兴趣 有时候感觉自己没有对哪个方向特别得感兴趣,而且有哪些方向也不是特别了解,您能讲讲有哪些方向可以选择的吗?请赐教了引用 4 楼  的回复: 先考虑下自己对哪个方向感兴趣 出去找工作吧,公司项目是哪方面的就学哪方面。 引用 5 楼 的回复: 有时候感觉自己没有对哪个方向特别得感兴趣,而且有哪些方向也不是特别了解,您能讲讲有哪些方向可以选择的吗?请赐教了引用 4 楼 的回复: 先考虑下自己对哪个方向感兴趣 出去找工作吧,公司项目是哪方面的就学哪方面。 是准备找工作了,不过不知道能不能找到。感觉有的公司要求基础要扎实,有的只看你会不会做东西。 靠,C++数据结构和算法基础都好?你莫不是吹牛吧?如果真的好,你们校园招聘,你没有应聘腾讯和百度?这些大公司都是面试的都是基础算法和数据结构。在这些公司,待遇不要太好。大公司不需要你有网络和数据库的知识的,只要的基础知识扎实就行了。那些东西到公司培训的时候,会有人教你的。。但大多数人的基础都非常薄弱。。
http://www.itnose.net/detail/680468.html 2014-02-19 16:57   [程序员]

数据结构基本定义 C/ C++

集合外,它们之间没有其他关系,各个元素是“平等”的,同属于一个集合。           线性结构:线性结构中每一个元素之间是一对一关系。             树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。              图形结构:数据元素是多对多的关系。   (2)物理结构:数据的逻辑结构在计算机中的存储形式。 有两种,分别是:顺序存储和链式存储。 1、顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间逻辑关系和物理关系是一致的。 2、链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以不连续。需要用一个指针存放数据元素的地址,通过地址就可以找到相关联数据元素的位置。 逻辑结构是面向问题的,而物理结构是面向计算机的,其基本目标是将数据及其逻辑关系存储到计算机的内存中。 三、抽象数据类型 数据类型:是指一组性质相同的值的集合以及定义在此集合上的一些操作的总称。 在C语言中,数据类型分两类: 原子类型:不可以再分解的基本类型。如整型、实型、字符型等。 结构类型:由若干个类型组合而成,可分解。 抽象是指取出事物具有的普遍性的本质,对具体事物的一个概括。 抽象数据类型(ADT):是指一个数学模型及定义在该模型上的一组操作。抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。 抽象数据类型的标准格式:  
http://www.itnose.net/detail/6667601.html 2016-11-18 18:17   [C++]

  1  2  3  4  5 下一页>