C语言编程实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编程实例相关的知识,希望对你有一定的参考价值。
#include"stdio.h"
void part (unsigned long num)
union data
unsigned int part[2];
unsigned long w;
n,*p;
p=&n;
n.w=num;
printf(" long int =%1x\n",num);
printf("low-part num=%x,high-part=%x\n",p->part[0],p->part[1]);
main()
unsigned long int x;
x=0x12345678;
part(x);
程序的运行结果为:
long int =12345678
low-part num=12345678,high-part num=cccccccc
long int =12345678为什么是这个结果
low-part num=12345678,high-part num=cccccccc又是怎么一回是
然后p=&n把n的地址赋给指针p,n.w=num把12345678赋给w,此时结构体n的地址其实就是12345678所在的地址,p指向n,同时结构体*p中的数组part的初始地址也在p上,也就是说p指向的数组part于n.w的首地址是相同的;
看你的输出结果,你的C中int和long应该都是32位吧,所以输出part[0]就是输出part地址上的前32位,即num,part[1]上都是空的,什么也没有,所以就是8个C;
PS:我想这个程序的意义是把long型整数进行拆分,分别输出高低位两部分,但是你的C中的int和long都是32位,所以没成功吧
呵呵,也不知道说的对不,C很久没用了 参考技术A 没看懂。。
[转]C语言构建动态数组完整实例
[转]C语言构建动态数组完整实例
原文地址:http://www.jb51.net/article/52153.htm
本文以一个完整的实例代码简述了C语言构建动态数组的方法,供大家参考,完整实例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <stdio.h> #include <malloc.h> int main( void ) { int len; int * arr; printf ( "请输入数组长度:" ); scanf ( "%d" , &len); arr = ( int *) malloc ( sizeof ( int )*len); printf ( "请输入数组的值:" ); for ( int i = 0; i < len; i ++) { scanf ( "%d" , &arr[i]); } for ( int j = 0; j < len; j ++) { printf ( "%d:%d " , j , arr[j]); } free (arr); return 0; } |
运行结果如下:
1
2
3
4
5
|
E:\clearning\cpointer>gcc dynamicarray.c -o dm --std=c99 E:\clearning\cpointer>dm 请输入数组长度:5 请输入数组的值:1 2 3 4 5 0:1 1:2 2:3 3:4 4:5 |
以上是关于C语言编程实例的主要内容,如果未能解决你的问题,请参考以下文章