Well, not really. I'd use a different number for each bullet, because you'd want more than one at a time, right? I would do something more like this:
obj_bullet = load_obj("bullet.dbo")
exclude object on obj_bullet
dim bullets() as dword
do
if mouseclick()
`make a new bullet
array insert at bottom bullets()
bullets() = instance_obj(bullet)
endif
`move all bullets no matter how many there are
for t = 0 to array count(bullets(0))
move object bullets(t), 1
next t
loop
But that's just the way I code. I would create an array which holds the bullet object numbers, so you can use a loop for bullet moving, and move the value in the current array index. When a new bullet is instanced my custom instance_obj() function finds a free object number, uses it to instance a bullet and return the id number it used into the array. I use gateway functions because I when I create objects I don't want to use numbers when making them, I let the program think of the numbers automatically and I use a variable instead.
"Did I ever tell you how I got the nickname the Dragon of the West?"
"I'm not interested in a lengthy anecdote, Uncle."
"It's more of a demonstration really."