1. c++中的大量变量数据怎么存储
“大量变量数据",是什么含义,从来没听过这种说法。
如果要在程序中存储数据可以用C++STL提供的容器。比如list、vector等。
2. 如何:在一个变量中保存多个值
复合数据类型
包括结构、数组和类。复合数据类型的变量可保存基本数据类型和其他复合类型的组合。结构和类可保存代码和数据。
3. 什么是变量的存储类型
量有4种存储类型,分别是auto(自动型)、static(静态型)、register(寄存器型)和extern(外部型)。在定义或说明一个变量时可以加上存储类型关键字,以限定其存储类别。
存储类型决定了系统将在哪一个数据存储区为变量分配存储空间。
4. 存储变量发生作用的范围有多广
变量作用域,也就是变量发生作用的范围。会话变量,存在于客户端的当次会话中,当客户端关闭时,此变量也就消失,因此会话变量的作用域为单个客户端整个会话。存储过程变量为数据库服务器上的变量,存储在服务器中,但其作用域并不能认为是整个数据库服务器。
存储过程变量作用域的认定按下面三个步骤进行:((1)从变量所在位置开始,往上回溯,从最靠近变量的第一个begin开始。
(2)往下延伸,找到与上面begin匹配的end结束。
(3)内部变量比外部变量在其作用域范围内享有更高的优先权。
下面举例说明存储过程变量作用域的范围,在这个存储过程案例中可以看到:((1)第4行代码声明了一个存储过程变量“x1”,其作用域为第3行代码的begin开始,到第10行代码的end结束,此变量值为“outer”。
(2)第6行代码声明了另一个存储过程变量“x1”,其作用域为第5行代码的begin开始,到第8行代码的end结束,此变量值为“inner”。
(3)第4行代码声明的“x1”为外部变量,第6行代码声明的“x1”为内部变量,在第7行代码中,取得的“x1”应为内部变量的值,即取得“inner”值,因内部变量的优先级比外部变量的优先级高;在第9行代码中,取得的“x1”应为外部变量的值,即取得“outer”值。如下图表
变量表
5. 变量名与数据内容的存储关系
这个认知, 我认为是错误的. 但是我没研究compiler与loader, 望有心人指正.
当你宣告变量时, 变量名称在程序中即是以address方式呈现(位置有分绝对与相对). 实际address是作业系统于执行阶段分配出来, 程序再依照loader的配置, 对相对位置进行操作, 不一定会有个实际变量的概念, 用来存放位址.
你也可以看成, a变量名称就是代表一个位址, 程序中直接使用该位址, 并不是由另外一个未知变量来储存位址.
6. vc字符串变量可以存储多长的数据
这个没有明确的长度限制。只要编译器没报错就行了。
一般的,函数内部的局部变量的字符串数组,大小受堆栈stack的大小限制,这个堆栈的大小是个几十M几百M的量级。
如果定义成全局变量的字符串数组,大小受data区的限制,data区一般要比stack区的可用大小大得多。
7. “变量是存储数据的值的空间”是什么意思
变量名本身代表一个地址,这个地址指向的内存空间存储的是变量的值。
8. SQL中一条查询语句,得到一列多个结果,现在想用一个变量存储起来,并用;分开,请问如何处理呢
--先将表倒入临时表,方便自已加工,这里加了一个 num 字段来记录状态
select email,1 num into #email from where id=1
--定义一些变量,@email是你需要的,@tmpemail 用来临时存储判断条件的
declare @i int,@n int,@email varhcar(8000),@tmpemail varchar(100)
set @email=''
set @i=1
select @n=count(*) from #email
--使用循环获取email,赋值给@email
while @i<=@n
begin
if @email='' then
begin
select top 1 @email=email,@tmpemail=email from #email where num=1 order by email
end
else
begin
select top 1 @email=@email+';'+email,@tmpemail=email from #email where num=1 order by email
end
--将已获取过的记录做标记,将num字段改为0
update #email set num=0 where num=1 and email=@tmpemail
set @i=@i+1
end
--输出变量@email
select @email
drop table #email
9. c语言中如何将多个整型变量值用一个整型变量来存储
提供一个思路供参考,共同体、位运算都可以实现,但是这个方法的话,数据不能太大,毕竟long int也就4个字节。
#include "stdio.h"
void main()
{
typedef union t{
char n[4];
long int sum; //sum是4个字节,跟n[4]占用同一个存储空间,改变n的值也是改变sum的值
}UT;
UT tt;
tt.n[0]=2014;
tt.n[1]=9;
tt.n[2]=4;
tt.n[3]=11;
printf("%ld\n",tt.sum);
}
10. 存放地址的变量同其他变量一样,可以存放任何类型的数据。 这句话对的错的,求解释
在正统的C领域里,这句话是错误的,存放地址的变量,只能用来存放地址量。
在旁门左道高人来看就未必了,直接给变量赋值当做地址量。